Field of the Invention
The present invention relates to configuring a call control context in a media gateway. In particular, but not exclusively, the present invention relates to implementing a call control context by configuring one or more digital signal processors in the media gateway.
Description of the Related Technology
In a communications network, a media gateway is used to couple two or more networks. Typically these networks are different. When coupling networks of different types, a media gateway converts media provided in a first format from a first type of network to a second format required in a second type of network. For example, a media gateway may terminate bearer channels from a switched circuit network (e.g. DSOs) and media streams from a packet network (e.g. real-time transport protocol (RTP) streams in an internet protocol (IP) network). In this way, public-switched telephone networks may be coupled to packet-switched IP networks and vice versa.
The term media gateway is typically used to refer to a combination of hardware and control software; for example, a physical computing device or server executing, in use, one or more sets of computer program code. FIG. 1 shows an example of a media gateway 100. The physical computing device typically comprises one or more digital signal processors (DSPs). In FIG. 1, media gateway 100 is shown with two DSPs 110-A and 110-B. A DSP is a processing component that has an architecture optimized for performing digital signal processing. For example, a DSP may have a specialized instruction set adapted to repeatedly perform a number of mathematical functions on a number of data samples that form part of a signal stream. Each DSP may comprise one or more processing cores. In FIG. 1, the first DSP 110-A is shown as having four DSP cores: 120-A to 120-D. The DSP cores of the second DSP 110-B are omitted for clarity. The term “core” is used to refer to a central processing unit (CPU) that is able to read and execute computer program code. This code may be retrieved from random access or read only memory. Each DSP core may comprise a specialized CPU that is optimized for encoding and/or decoding operations involved in processing a data stream. A media gateway may have a plurality of DSPs, wherein each DSP has a plurality of cores. Each DSP core has a number of resources. These resources may comprise, for example, one or more of: processing resources associated with a number of instructions that can be processed by a central processing unit; memory and/or cache for storing data and/or instructions; and conference resources associated with a conference call.
A media gateway processes one or more communication channels. These may comprise logical channels that carry data associated with communications between two or more parties. In the context of one or more DSPs that constitute a media gateway, the term “DSP channel” may be used to refer to allotted data processing resources that are used by a DSP core to process or handle data carried in a communications channel, e.g. a DSP core implements a DSP channel that processes a data stream by way of computer program code and/or memory. For example, a DSP channel may comprise a programming abstraction that is used to divide data processing on a DSP core; a DSP channel may comprise a thread-like object that allows data processing for data associated with a particular communication channel to be assigned to the central processing unit of the DSP core for a particular time period, while ensuring real-time or near-real-time processing. The data stream may comprise a media stream or control data. For example, a DSP channel may process an RTP/Nb stream or a DSO stream, handle High-Level Data Link Control (HDLC) signaling or play media from an announcement file into a media stream. In practice a media gateway may be capable of processing audio, video and T.120 protocol data alone or in any combination. It may also be capable of full duplex media translations as well as playing audio and/or video messages. It is also capable of performing other interactive voice response (IVR) functions and may perform media conferencing.
DSP channels exist within a DSP context. When a DSP channel is needed for data or media processing, a DSP context is established. A “DSP context” is a term used herein to refer to collection of one or more DSP channels. Within a DSP context, these DSP channels are related; they may only share data with other DSP channels in the DSP context. In other words, a DSP channel within a DSP context is not able to natively exchange data with DSP channels in other DSP contexts. In use, a DSP context is established in relation to a DSP core. The DSP core is then responsible for processing any DSP channels within that DSP context, for example until a call ends. In FIG. 1, two DSP contexts 125-A and 125-B are schematically shown. These DSP contexts 125 are implemented on a first DSP core 120-A. The DSP contexts assigned to the other DSP cores are not shown in FIG. 1 for clarity. A DSP core may have a plurality of DSP contexts, each DSP context defining a plurality of DSP channels.
In a media gateway there are limitations to the size of a call that can be processed. For example, a DSP context is limited to a DSP core and the DSP core sets an upper bound on the processing that can be performed by the media gateway. While adequate for certain current telecommunications processes, these hardware limitations constrain the use of the telecommunications network, e.g. certain call configurations are not possible without upgrading the processing capacity of the media gateway.